package Polymorphism06;

public class Person {
    //第一种方案
   /* //人饲养猫
    public void feed (Cat c) {

        c.eat();
        c.catchMouse();
    }

    //人饲养鸟
    public void feed (Bird b){
        b.eat();
        b.fly();
    }*/



    //第二种方案
  public void feed(Animal a){
      a.eat();//Animal a= new Cat(); 多态原理
      //Animal a=new Bird();.....其他动物也行
      /* a.catchMouse();
        a.fly();编译时看左边 animal中没有定义，编译报错

        */

      if (a instanceof Cat ) {
          Cat c = (Cat) a;
          c.catchMouse();
      } else if (a instanceof Bird ) {
          Bird b = (Bird) a;
          b.fly();
      }

      /*//JDK 16新特性 instanceof 增强
      if (a instanceof Cat c) {
          c.catchMouse();
      } else if (a instanceof Bird b) {
          b.fly();
      }
      //JDK 21种switch可以使用类型模式匹配
      switch (a) {
          case Cat c -> c.catchMouse();
          case Bird b -> b.fly();
          default -> System.out.println("其它类型:"+a);
      }*/


  }
    public void jidu(JD jd) {
        jd.jd();
    }



}
